/**
 * 文件描述：
 * 创建时间：2023/9/6 16:01
 * 创建人：二
 */
// 引入axios
import axios from 'axios';
// 引入element插件
import { Message } from 'element-ui';

import { againLogin } from '@/utils/common'

const instance = axios.create({
	baseURL: process.env.VUE_APP_API, // 设置请求的基础URL
})


// 添加请求拦截器
instance.interceptors.request.use(
	config => {
		// 在发送请求之前做些什么
		// config.headers.common.authorization = store.state.token;
		config.transformRequest = function(data) {
			return data;
		};

		return config;
	},
	error => {
		// 对请求错误做些什么
		return Promise.reject(error); // 返回接口返回的错误信息
	}
);

instance.interceptors.response.use(
	res => {
		// 0 成功， 1，2是失败， 3登录失效
		// 对响应数据做点什么
		// console.log('res', res)
		// 二进制数据下载
		if (res.request.responseType ===  'blob' || res.request.responseType ===  'arraybuffer') {
			return Promise.resolve(res.data);
		}
		switch (res.data.code) {
			case 0:
				// 获取成功，直接返回数据
				return Promise.resolve(res.data);
			case 3:
				againLogin()
				// 登录失效
				return Promise.reject(res.data);
			default:
				Message.error(res.data.msg);
				// 返回失败的状态
				return Promise.reject(res.data);
		}
	},
	error => {
		Message.error('系统错误！');
		// 对响应错误做点什么
		return Promise.reject(error); // 返回接口返回的错误信息
	}
);

export default instance;
